package com.sz.biz.logistics.core.service;

import com.sz.biz.logistics.core.entity.ProductCustomerRel;
import com.sz.biz.logistics.core.dto.ProductCustomerRelDto;

import java.util.List;
import java.util.Map;

/**
 * Function:  客户可见/不可见产品服务 <br>
 * Author: jifeixing <br>
 * Date: 2017-08-09 14:58:00
 */

public interface ProductCustomerRelService {
    /**
     * 新增
     * @param productCustomerRelDto
     * @return
     */
    void save(ProductCustomerRelDto productCustomerRelDto);

    /**
     * 修改
     * @param productCustomerRelDto
     * @return
     */
    void update(ProductCustomerRelDto productCustomerRelDto);

    /**
     * 删除
     * @param ids
     * @return
     */
    void batchDelete(List<Integer> ids);

    /**
     * 获取客户可见产品信息
     * @param customerId
     * @param isBlack
     * @return
     */
    List<ProductCustomerRel> findByCustomerId(Integer customerId, Boolean isBlack);

    /**
     * 根据客户id获取产品信息
     * @param customerId
     * @return
     */
    List findProductsByCustomerId(Integer customerId);

    /**
     * 根据客户id获取产品组信息
     * @param customerId
     * @return
     */
    List findProductGroupsByCustomerId(Integer customerId);

    /**
     * 获取可见性标志
     * @param customerId
     * @return
     */
    Integer findWbFlag(Integer customerId);

    /**
     * 获取客户可见性
     * @param customerId
     * @return
     */
    Map<String, Object> findProductAndGroupsByCustomerId(Integer customerId);
}
